package org.acghub.demo.mongodb.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.time.LocalDateTime;

/**
 * MongoDB测试实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "test_entity")
public class TestEntity {

    /**
     * 主键ID
     */
    @Id
    private Long id;

    /**
     * 名称
     */
    @Field("name")
    private String name;

    /**
     * 描述
     */
    @Field("description")
    private String description;

    /**
     * 年龄
     */
    @Field("age")
    private Integer age;

    /**
     * 分数
     */
    @Field("score")
    private Double score;

    /**
     * 是否激活
     */
    @Field("active")
    private Boolean active;

    /**
     * 创建时间
     */
    @Field("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Field("update_time")
    private LocalDateTime updateTime;

    /**
     * 标签列表
     */
    @Field("tags")
    private java.util.List<String> tags;

    /**
     * 额外属性
     */
    @Field("properties")
    private java.util.Map<String, Object> properties;
}